Total Complexity | 4 |
Total Lines | 27 |
Duplicated Lines | 0 % |
Changes | 0 |
1 | import { AngularFireAuth } from "@angular/fire/auth"; |
||
8 | |||
9 | export abstract class AbstractStorage<User extends UserModel = UserModel> |
||
10 | implements IStorageProvider<User> { |
||
11 | protected config: UniFirebaseLoginConfig; |
||
12 | |||
13 | protected constructor( |
||
14 | protected angularFireAuth: AngularFireAuth, |
||
15 | configProvider: UniFirebaseLoginConfigProvider, |
||
16 | ) { |
||
17 | this.config = configProvider.config; |
||
18 | } |
||
19 | |||
20 | public abstract async updateStoredDataByUser(user: User): Promise<void>; |
||
21 | |||
22 | public abstract async updateStoredDataByFirebaseUser( |
||
23 | firebaseUser: FirebaseUser, |
||
24 | ): Promise<void>; |
||
25 | |||
26 | public abstract subscribeUserDataFromStorageByFirebaseUser( |
||
27 | user: FirebaseUser, |
||
28 | ): Observable<User | null>; |
||
29 | |||
30 | /** |
||
31 | * Override this method if you want to use custom model class |
||
32 | */ |
||
33 | protected getNewUser(): User { |
||
34 | return this.config.userFactoryFunc() as User; |
||
35 | } |
||
37 |